package com.nine.news.util;

import cn.hutool.core.bean.BeanUtil;
import cn.hutool.jwt.JWTUtil;

import java.util.Map;
import java.util.UUID;

/**
 * @Author: szhan
 * @Date: 2023/03/15/7:22 PM
 * @Description:
 * 使用hutool的JWT工具类进行封装
 */
public class JwtUtil {

    private static byte[] key;

    static {
        getKey();
    }

    /**
     * 生成密钥*/
    private static void getKey() {
        key = UUID.randomUUID().toString().getBytes();
    }

    /**
     * 生成token
     * @param obj  转为token的对象*/
    public static String createToken(Object obj) {
        Map<String, Object> toMap = BeanUtil.beanToMap(obj);
        return  JWTUtil.createToken(toMap,key);
    }

    /**
     * 解析token
     * @return 返回的是对象*/
    public static Object parseToken(String token) {
        if (JWTUtil.verify(token, key)) {
            return JWTUtil.parseToken(token).getPayloads();
        }
        return null;
    }
}
